import os

PRO_PATH = os.path.dirname(os.path.abspath(__file__))


class RunConfig:
    """
    运行测试配置
    """
    # ------基础配置------ #
    #测试人
    tester = '张泽旺'
    # 运行测试用例的目录或文件
    UI_cases_path = os.path.join(PRO_PATH, "test_dir/test_UI")
    API_cases_path = os.path.join(PRO_PATH, "test_dir/test_API", "test_api_baidu.py")
    APP_cases_path = os.path.join(PRO_PATH, "test_dir/test_APP", "test_wx.py")
    # 配置浏览器驱动类型(chrome/firefox/chrome-headless/firefox-headless/grid)。
    driver_type = "chrome"
    # 配置元素超时时间
    timeout = 10
    # 失败重跑次数
    rerun = "0"
    # 当达到最大失败数，停止执行
    max_fail = "5"
    # mysql 数据库配置，当数据库配置为空，或者没有此项配置时程序将不会初始化mysql链接。
    MySQL = {
        'host': '127.0.0.1',
        'port': 3306,
        'user': 'root',
        'password': '123456',
        'database': 'test',
    }
    app_name = ''
    # appium启动配置
    desired_caps = {
        'platformName': 'Android',  # 设备类型；
        'platformVersion': '7',  # 设备的类型的版本号，如果是安卓，填写大的版本号即可，小数不用填；
        'deviceName': 'MI9',  # 设备的名称，这个和后续的测试没有多大关系；
        'appPackage': 'com.tencent.mm',  # 需要测试的app包名；
        'appActivity': 'com.tencent.mm.ui.LauncherUI',  # 需要测试的app启动名；
        # 'unicodeKeyboard': True,  # 如果指定了UI2作为驱动，不需要配置；
        # 'resetKeyboard': True,  # 重置自动化时设置的键盘；
        # 'chromedriverExecutableDir': '路径',  # 启动webview的webdriver驱动
        'noReset': True,  # 防止每次启动app时候都初始化所有数据；
        # 'newCommandTimeout': 6000,  # 代码向appiumserver发送命令的延迟时间，单位是秒，不设置默认一分钟；
        # 'automationName': 'uiautomator2',  # 这个并不是所有应用都适配的，1.15.1以前默认是UI1，之后是默认UI2；IOS: XCUITest;也可直接使用appium
        'autoGrantPermissions': True,  # 自动跳过授权
        'skipServerInstallation': True,
        'skipDeviceInitialization': True,  # 跳过安装AppiumSetting,初次测试请改为False。
    }
    # 邮件发件人(邮箱配置地址::邮箱::密码)
    SEND_USER = ''
    # 邮件收件人
    RECE_USERS = []
    # 钉钉消息被@人电话号码。
    atMobiles = []

    # ------UI分布式配置， 。当driver_type='grid' 以下配置生效------ #
    # 远程端户端IP，默认为127.0.0.1
    remote_ip = "192.168.1.4"
    # 远程客户端端口
    remote_port = '4455'
    # 远程客户端系统， 默认windows
    remote_platform = ""
    # 远程浏览器类型 chrome or firefox or edge ...
    remote_type = 'chrome'


    # ------系统配置，无需修改------ #
    # 浏览器驱动（不需要修改）
    driver = None
    # app 驱动（不需要修改）
    app_driver = None
    # 报告路径（不需要修改）
    NEW_REPORT = None
    # 日志文件路径
    log_file_name = None
    # API 结果状态码与返回结果(不需要修改)
    API_RESULT_CODE = None
    API_RESULT = None
    # 标记执行类型(不需要修改，命令行中指定)
    RUN = None
    # 环境配置标记
    ISTEST = True
    # 项目日志配置
    UI_LOG_DIR = PRO_PATH + "/logs/UI/"
    API_LOG_DIR = PRO_PATH + "/logs/API/"
    APP_LOG_DIR = PRO_PATH + "/logs/APP/"



if __name__ == '__main__':
    pass
